package com.sooth.system.menu.service;

import com.dream.template.service.IService;
import com.sooth.system.menu.view.RouterView;
import com.sooth.system.menu.view.SysMenuBo;
import com.sooth.system.menu.view.SysMenuDto;
import com.sooth.system.menu.view.SysMenuVo;

import java.util.List;

/**
 * 菜单 业务层
 *
 * @author Lion Li
 */
public interface ISysMenuService extends IService<SysMenuVo, SysMenuBo> {
    /**
     * 构建前端所需要下拉树结构
     *
     * @param menu 查询条件
     * @return 下拉树结构列表
     */
    List<SysMenuVo> selectMenuTree(SysMenuDto menu);

    /**
     * 构建前端所需要结构
     *
     * @return 下拉树结构列表
     */
    List<RouterView> selectRouterTree();

    /**
     * 更新菜单，并自动构建显示顺序
     *
     * @param menuBo
     */
    Integer updateWithOrderById(SysMenuBo menuBo);

    /**
     * 根据用户ID查询权限
     *
     * @param userId 用户ID
     * @return 权限列表
     */
    List<String> queryPermByUserId(Long userId);
}
